/*
 * ==========================================
 * DNS 攻击链前端项目 - 任务安排与进度跟踪
 * ==========================================
 * 标记说明：
 * // * 绿色 - 已完成功能
 * // TODO: 橙色 - 计划开发功能（括号标注预计完成时间）
 * // ! 红色 - 存在问题或bug，需要修复
 * // ? 蓝色 - 依赖其他功能或待确认
 * // // 灰色 - 已弃用或不需要的功能
 * ==========================================
 */


// ==========================================
// 1. 攻击链拓扑页面 (TopologyDesigner)
// ==========================================

// * -----------------------------------------
// * 1.1 页面布局与样式（持续优化中）
// * -----------------------------------------
// * 美化页面样式，新增缩放功能
// * 画布拓展到整个页面
// * 调整按钮位置和颜色，统一视觉风格
// * 修改节点图形表示
// * 底部横向控制栏
// * 右侧节点列表面板
// * 节点序号徽章显示
// * 节点显示后端数量、层级信息
// * 攻击目标节点可视化

// TODO: 节点名称换行显示支持（提升长名称展示效果）


// * -----------------------------------------
// * 1.2 核心功能
// * -----------------------------------------
// * 部署攻击链结构到后端
// * 开始攻击按钮（向后端发送攻击指令）
// * 配置文件加载与管理
// * 自动编排功能
// * 保存和读取拓扑结构（LocalStorage自动保存）
// * 修改测试连接，不发送完整链结构

// ! 开始攻击功能可能无效，需要排查
// ? 开始攻击时是否需要传送根节点IP？（待确认后端需求）

// TODO: 自动编排后自动连接到攻击目标节点（智能连接）


// * -----------------------------------------
// * 1.3 画布交互功能
// * -----------------------------------------
// * 画布缩放（鼠标滚轮）
// * 画布拖拽平移
// * 节点拖拽部署（从右侧列表拖拽到画布）
// * 节点选中动画效果
// * 连接线绘制（渐变效果）
// * 节点连接管理（前后端连接）
// * 攻击目标连接（红色渐变线）
// * 防止已部署节点重复拖拽


// * -----------------------------------------
// * 1.4 节点管理
// * -----------------------------------------
// * 新增节点窗口
// * 节点管理窗口（收纳原有功能）
// * 编辑节点信息
// * 删除节点
// * 节点列表显示（层级、后端数量、IP信息）
// * 节点前端IP配置
// * 节点后端IP配置
// * 节点参数配置：
//   * - rd_senstive_flage（RD敏感标志）
//   * - negative_cache（否定缓存时间）
//   * - frontend_query_merge_time_window（前端查询合并时间窗口）
// * 后端配置（BackendConfig）：
//   * - query_A_times（A记录查询次数）
//   * - query_AAAA_times（AAAA记录查询次数）
//   * - retry_total_time_window（重试总时间窗口）
//   * - max_fanout_num（最大扇出数量）
//   * - backend_query_merge_time_window（后端查询合并时间窗口）

// ! bug：点击编辑节点时，后端列表展示有问题，只显示8个
// ! bug：后端圆点非常多，不够美观

// TODO: 后端显示优化（重要）
// 问题：一个节点的后端可能有几十上百个，现在后端圆点非常多不够美观
// 方案：
//   - 后端始终只显示一个圆点
//   - 画布上的节点标明有多少个后端
//   - 在节点内新增一个小按钮，点击后显示当前节点的后端列表
//   - 后端列表注明每个后端编号、IP、下一节点IP（如果已连接，可能有多个）
//   - 每个后端可以点击进行选择
//   - 选择后在画布上拖拽连接就是连接选中的这个后端
//   - 鼠标置于后端圆点上显示当前选中的后端编号和IP

// TODO: 节点排序功能（按层级、名称等）


// * -----------------------------------------
// * 1.5 CSV导入导出（扫描结果管理）
// * -----------------------------------------
// * CSV导入功能
// * CSV导出功能
// * 导入连接结构后自动编排位置
// * 读取节点按钮（打开任务选择窗口）
// * 任务选择窗口（显示历史任务列表）
// * 多任务选择支持

// ? 导入扫描结果功能（依赖后端扫描功能完成）
// TODO: 与实网扫描页面集成，一键导入扫描结果到拓扑画布


// * -----------------------------------------
// * 1.6 攻击效果实时展示（SSE方式）
// * -----------------------------------------
// * 攻击效果展示窗口（弹窗显示）
// * SSH日志实时显示（使用SSE推送）
// * SSH日志自动滚动到最新
// * SSH连接状态显示（连接中、已连接、错误、断开）
// * SSH自动重连机制（最多5次，间隔3秒）

// * 攻击包统计信息实时更新（SSE推送）：
//   * - 攻击持续时间（分钟+秒）
//   * - 已收到的攻击包总数
//   * - 非双栈协同攻击包数量
//   * - 时间戳（最后更新时间）
//   * - Analysis ID

// * DNS请求速率变化曲线（实时绘制）：
//   * - 双栈请求QPS曲线（紫色实线）
//   * - A记录请求QPS曲线（橙色虚线）
//   * - 自适应Y轴最大值（动态调整）
//   * - 最多保留60个数据点（滚动窗口）
//   * - 网格背景
//   * - 坐标轴和刻度标签
//   * - 图例说明

// * SSE连接管理：
//   * - 打开窗口时自动建立三个SSE连接（SSH日志、攻击包统计、QPS曲线）
//   * - 关闭窗口时自动断开所有SSE连接
//   * - CORS跨域问题通过Vite代理解决（代理到3620端口）

// TODO: 节点状态实时更新（使用不同颜色区分节点状态：运行中、空闲、错误等）

// // SSH日志：左对齐，最后一行和底部的距离（已解决）


// * -----------------------------------------
// * 1.7 前后端连接与通信
// * -----------------------------------------
// * 向后端发送部署攻击链结构（POST请求）
// * 测试连接功能
// * 修改数据发送路径（代理到3620端口）
// * CORS跨域请求问题通过Vite代理解决
// * SSE端点连接（在3620端口部署）
// * 攻击开始指令发送

// TODO: 后端归并功能对接
// 前端提供参数：归为几类（后端归并交给后端处理）


// TODO: -----------------------------------------
// TODO: 1.8 额外功能选项（根据后端需求添加）
// TODO: -----------------------------------------
// TODO: 根据后端开发进度和实际需求添加额外控制选项




// ==========================================
// 2. 实网扫描页面（待开发）
// ==========================================

// TODO: -----------------------------------------
// TODO: 2.1 页面布局与样式（持续优化）
// TODO: -----------------------------------------
// TODO: 设计扫描任务管理界面
// TODO: 参数配置面板
// TODO: 结果展示区域
// TODO: 统一视觉风格与拓扑页面


// TODO: -----------------------------------------
// TODO: 2.2 扫描任务管理（预计10.23完成）
// TODO: -----------------------------------------
// TODO: 发布扫描任务功能
// TODO: 定义扫描参数：
//   - IP地址范围
//   - 扫描端口
//   - 扫描深度
//   - 超时设置
//   - 并发数量
// TODO: 任务状态更新（实时显示任务进度）
// TODO: 任务列表展示（历史任务记录）
// TODO: 任务查询和筛选
// TODO: 任务删除功能


// ? -----------------------------------------
// ? 2.3 探测节点属性（依赖后端扫描功能）
// ? -----------------------------------------
// ? 显示扫描到的节点属性信息
// ? 节点类型识别
// ? 节点配置参数显示
// ? 节点可用性检测


// ? -----------------------------------------
// ? 2.4 扫描结果处理（依赖后端扫描功能）
// ? -----------------------------------------
// ? 生成扫描结果报告
// ? 可视化展示扫描拓扑
// ? 导出扫描结果为CSV
// ? 一键导入扫描结果到攻击链拓扑页面




// ==========================================
// 3. 初始化页面（待开发）
// ==========================================

// TODO: -----------------------------------------
// TODO: 3.1 用户认证
// TODO: -----------------------------------------
// TODO: 登录账号功能
// TODO: 用户权限管理
// TODO: Session管理
// TODO: 登录状态保持


// TODO: -----------------------------------------
// TODO: 3.2 服务器连接管理
// TODO: -----------------------------------------
// TODO: 连接扫描服务器
// TODO: 连接权威DNS服务器
// TODO: 连接受害者服务器
// TODO: 服务器连接状态检测
// TODO: 断线重连机制


// TODO: -----------------------------------------
// TODO: 3.3 服务器配置
// TODO: -----------------------------------------
// TODO: 修改服务器参数
// TODO: 服务器配置保存和读取
// TODO: 配置验证功能
// TODO: 配置文件导入导出




// ==========================================
// 4. 技术债务与优化
// ==========================================

// ! -----------------------------------------
// ! 4.1 已知Bug列表（需要修复）
// ! -----------------------------------------
// ! 开始攻击功能可能无效
// ! 点击编辑节点后端展示有问题，只显示8个
// ! 后端圆点非常多，不够美观

// // "空白画布"阻挡拖拽（已解决）


// TODO: -----------------------------------------
// TODO: 4.2 性能优化
// TODO: -----------------------------------------
// TODO: 大量节点时的渲染性能优化
// TODO: SSE连接性能优化
// TODO: 画布缩放和拖拽性能优化（节点数超过50个时）


// TODO: -----------------------------------------
// TODO: 4.3 用户体验优化
// TODO: -----------------------------------------
// TODO: 操作撤销/重做功能
// TODO: 快捷键支持
// TODO: 右键菜单（快速操作）
// TODO: 节点批量选择和操作
// TODO: 画布导出为图片
// TODO: 更好的错误提示和用户引导


// TODO: -----------------------------------------
// TODO: 4.4 代码质量
// TODO: -----------------------------------------
// TODO: TypeScript类型完善
// TODO: 组件拆分（TopologyDesigner.vue过大，4000+行）
// TODO: 代码注释和文档
// TODO: 单元测试


/*
 * ==========================================
 * 开发优先级建议
 * ==========================================
 * 
 * P0（紧急）：
 * 1. 修复开始攻击无效的bug
 * 2. 修复编辑节点后端展示bug
 * 3. 后端圆点显示优化（严重影响用户体验）
 * 
 * P1（高优先级）：
 * 1. 节点状态实时更新（不同颜色区分）
 * 2. 自动编排连接到攻击目标
 * 3. 后端归并功能对接
 * 4. 实网扫描页面基础功能（10.23目标）
 * 
 * P2（中优先级）：
 * 1. 节点排序功能
 * 2. 扫描结果导入功能（依赖扫描页面）
 * 3. 初始化页面开发
 * 4. 组件拆分重构
 * 
 * P3（低优先级）：
 * 1. 用户体验优化（撤销/重做、快捷键等）
 * 2. 性能优化
 * 3. 单元测试
 * 
 * ==========================================
 */


/*
 * ==========================================
 * 项目部署信息
 * ==========================================
 * 
 * 服务器地址：202.117.43.253
 * 前端端口：30380
 * 后端代理端口：3620
 * SSH日志端口：2380（已弃用）
 * 访问地址：http://202.117.43.253:30380
 * 
 * SSE端点：
 * - SSH日志：/api/ssh-stream
 * - 攻击包统计：/api/package-stats
 * - QPS曲线：/api/qps-stream
 * 
 * ==========================================
 */

